<?php

// 模板类
class Templates {
    
    // 创建一个构造方法，验证各个目录是否存在
    public function __construct() {
        if (! is_dir ( TPL_DIR ) || ! is_dir ( TPL_C_DIR ) || ! is_dir ( CACHE_DIR )) {
            exit ( 'ERROR:模板文件夹或编译文件夹或缓存文件夹不存在，请手动创建' );
        } else {
            echo '文件夹都有了，可以正常使用了';
        }
    }
    
    // display()方法，参数为tpl文件名
    public function display($_file) {
        // 设置模板文件的路径
        $_tplFile = TPL_DIR . $_file;
        
        // 容错机制：如果模板文件不存在，则给出自定义错误提示
        if (! file_exists ( $_tplFile )) {
            exit ( 'ERROR: 模板文件不存在' );
        }
        
        // 设置编译文件的文件路径；编译文件本身就是被生成的。
        $_parFile = TPL_C_DIR . md5 ( $_file ) . $_file . '.php';
        // echo $_parFile;
        // 判断是否需要重新生成编译文件
        // 即如果编译文件不存在，或者编译文件最后修改时间小于模板文件的最后修改时间
        if (! file_exists ( $_parFile ) || filemtime ( $_parFile ) < filemtime ( $_tplFile )) {
            file_put_contents ( $_parFile, file_get_contents ( $_tplFile ) );
        }
        
        // 载入编译文件
        include $_parFile;
    }
}

?>